function Output = my_getFilewithTime(FileList,TimeFormat,expression)
% Output = my_getFilewithTim(FileList，TimeFormat,expression)
%
% --------自定义函数--------
% 函数名称：my_getFilewithTime
% 函数说明：选取指定日期范围内的文件名，需要文件名中带日期
% 函数输入
%   Filelist：dir()函数返回的struct格式的文件列表
%   TimeFormat: 字符串格式，例如"yyyyMMdd[h/HH]mmss"
%   expression: 字符串数组，日期范围： ["start_time", "end_time"]前闭后开
% 函数输出：
%   Output: 符合时间范围的文件列表,结构和dir()函数的返回结果相同。
% 作者：sid
% LOG：
%    2021/11/05 ver 0.1: create

% 从结构体中获取全部的文件名，保存为元胞数组
NameList = {FileList.name};
% 将其中的日期信息提取出来，将提取出来的日期转化成字符串数组，供datetime函数适用
TimeStringList = string(regexp(NameList,'[0-9]{6}','match'));
% 转换成datetime数据格式，供判断用
TimeList = datetime(TimeStringList,'InputFormat',TimeFormat);
% 配置好开始日期和结束日期，区间前开后闭
StartTime = datetime(expression(1),'InputFormat',TimeFormat);
EndTime = datetime(expression(2),'InputFormat',TimeFormat);
% 进行日期的判断，生成索引矩阵
IndexMatrix = TimeList>=StartTime & TimeList<EndTime;

% 根据索引矩阵生成符合时间范围的文件结构体
Output = FileList(IndexMatrix);
end